home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / misc / guigfxlib.lha / GuiGFXLib / doc / history < prev    next >
Encoding:
Text File  |  2000-02-01  |  18.9 KB  |  521 lines

  1.  
  2. history
  3. -------------------------
  4.  
  5. v17.1
  6.     - added an internal hook delay counter. user hooks
  7.       are now called less frequently during scaling/rendering,
  8.       which gives a slight performance boost in some
  9.       applications
  10.     
  11.     - guigfx.library no longer loses memory upon open/close.
  12.       this leak was present for eons. fixing it caused the library
  13.       itself to shrink by several kilobytes of useless object
  14.       code. no, i won't tell more details about this #*&%! one :-)
  15.       
  16.     - removed the examples from the distribution because they were
  17.       everything but instructive.
  18.  
  19. v17
  20.     - bug fixed: the drawhandle's autodither attribute
  21.       was not considered in CreatePictureBitMap().
  22.     
  23.     - added GGFX_AutoDither tag for CreatePictureBitMap()
  24.       for overriding the drawhandle's autodither tag.
  25.  
  26. v16.4
  27.  
  28.     - reconstructed 16.3 changes after a minor HD desaster
  29.  
  30. v16.3
  31.  
  32.     - bug fixed in LoadPicture(): GGFX_UseMask was broken.
  33.       memory for an alphachannel/mask was always allocated
  34.       when there was a transparency color inside the picture,
  35.       regardless of the GGFX_UseMask attribute. now an
  36.       alphachannel is only allocated when both GGFX_UseMask
  37.       is set and a mask is actually present.
  38.       
  39.     - added documentation for a feature that was present
  40.       and considered experimental since v8.3: drawing with
  41.       rotating/texture-mapping in a single pass, without
  42.       additional buffers. see: ObtainDrawHandle()/GGFX_BGColor
  43.       and DrawPicture()/RND_DestCoordinates.
  44.  
  45. v16.2
  46.  
  47.     - improved mask handling: LoadPicture() now computes an
  48.       alpha-channel from a given transparency color, when no
  49.       PDTA_MaskPlane was returned. this solves some
  50.       outstanding compatibility problems with the picasso96
  51.       picture.datatype. thanks to S. Bauer for reporting
  52.       these problems.
  53.  
  54.     - fixed version string
  55.  
  56. v16
  57.     - added GGFX_RastLock for passing an optional SignalSemaphore
  58.       that may be used for locking a drawhandle's rastport while
  59.       rendering.
  60.     
  61.     - default dithermode is now DITHERMODE_EDD.
  62.     
  63.     - v39 exec pooled memory environment reactivated (it was
  64.       disabled since v10).
  65.       
  66.     - added StormC includes.
  67.     
  68.     - removed all assembler and E includes. I'm too lazy to
  69.       keep the assembler files up-to-date manually, and the
  70.       iconvert tool of E throws enforcerhits on my system.
  71.       (if you're programming the respective languages, you
  72.       should have better ways to transform the includes than
  73.       I have)
  74.  
  75. v15.2
  76.     - static-palette drawhandles allocate much better pens now
  77.       (a YUV colorspace is used instead of RGB), and allocation
  78.       is quicker.
  79.  
  80. v15.1
  81.     - render.library crashed with an ILLEGAL exception
  82.       (caused by a memhandler leak) when a HAM picture
  83.       was loaded with a v42 ILBM datatype. fixed.
  84.     
  85.     - CreatePictureMask() failed to create scaled masks.
  86.       fixed.
  87.  
  88. v15
  89.     - added a few basic examples to the documentation.
  90.     - added GGFX_UseMask for LoadPicture(). if TRUE and supported
  91.       by the datatype, a mask will be read and included to the 
  92.       picture as an alpha-channel.
  93.     - new function: CreatePictureMask(). This function creates
  94.       a single-bitplane mask from a picture's alpha-channel. it
  95.       can be passed to graphics.library/BltMaskBitMapRastPort().
  96.     - CreatePictureBitMap() now accepts a NULL picture. This can
  97.       be used to allocate a blank bitmap that can be blitted
  98.       to a drawhandle efficiently.
  99.  
  100. v14
  101.     - minor bug in MakePicture() fixed: when a blank
  102.       picture was created (data = NULL), the independent
  103.       flag was internally not set to TRUE.
  104.     - PICMTHD_AUTOCROP cropped blank pictures down to zero
  105.       pixels - fixed. (oops! evil crashes :-)
  106.  
  107. v13
  108.     - minor internal changes
  109.  
  110. v12
  111.     - added picture method PICMTHD_AUTOCROP
  112.     - the includes did not contain the definitions for
  113.       PICMTHD_NEGATIVE. fixed.
  114.  
  115. v11
  116.     - the Tower JPEG codec is no longer supported directly.
  117.     - added documentation for the v9 directdraw functions.
  118.  
  119. v10.2
  120.     - env/usescalepixelarray is no longer considered for
  121.       CreatePictureBitMap(). this function always uses
  122.       internal scaling routines now.
  123.  
  124. v10.1
  125.     - fixed a semaphore lockup problem when MakePicture() failed due to
  126.       a lack of memory
  127.     - parts of the library have been restructured.
  128.     - internal bitmap handling rewritten.
  129.     - MakePicture() has been rewritten. lots of sanity checks have been added.
  130.       bitmap conversion is more efficient. scaling has been included.
  131.     - fixed DirectDrawTruecolor() on truecolor screens without scaling
  132.     - rewrote ReadPicture(), added tags GGFX_AspectX, GGFX_AspectY,
  133.       GGFX_DestWidth, GGFX_DestHeight, and GGFX_ModeID.
  134.     - added picture method PICMTHD_NEGATIVE
  135.  
  136. v10
  137.     - major stability update! thanks to Luca Longone, who encountered
  138.       MystiCube crashing when started multiple times. the internal
  139.       memory manager is now reset to RMHTYPE_PUBLIC, and no problems
  140.       occured with 4 mysticubes, 2 mysticviews in slideshow mode,
  141.       rgbplasma, plus viewworld running simultaneously for many hours
  142.       under heavy debugging conditions.
  143.  
  144.       public memory management seems to solve all outstanding problems,
  145.       but it causes more memory fragmentation. a more sophisticated
  146.       memory manager is being planned.
  147.  
  148.     - added documentation for Source-Tags in picture method
  149.       PICMTHD_MIXALPHA.
  150.  
  151. v9.0
  152.     - CreatePictureBitmap() now returns gently with a NULL pointer
  153.       when no valid picture or drawhandles were specified.
  154.     - added CreatePictureMask(). (experimental, not for public use yet)
  155.  
  156. v8.5
  157.     - added env variable AUTODITHERTHRESHOLD
  158.     - env variables are now considered only once, when the
  159.       library is opened.
  160.     - forgot to document PICMTHD_SET in the autodocs. fixed.
  161.     - added method PICMTHD_CHECKAUTODITHER.
  162.  
  163. v8.4
  164.     - GGFX_AutoDither is now considered by DrawPicture()
  165.  
  166.  
  167. v8.3
  168.     - fixed CreateDirectDrawHandle(). when the input and
  169.       output dimensions were the same, this function returned
  170.       NULL instead of a valid directdrawhandle.
  171.     
  172.     - added support for texture-mapping and rotating while
  173.       drawing (no additional buffers required). currently
  174.       not documented and for internal use only.
  175.     
  176.     - added env variable guigfx/USEWPA8. it is used when the
  177.       drawhandle is on a native Amiga screenmode. when set to
  178.       0, guigfx.library will use an internal c2p routine.
  179.       when set to 1, guigfx.library will call WritePixelArray8(),
  180.       WritePixelLine8() or WriteChunkyPixels().
  181.  
  182. v8.2
  183.     - 12bit (default) drawhandles now use mapping-engines for
  184.       optimized rendering to static palettes (no pen-sharemap
  185.       specified for ObtainDrawHandle()). this is preliminary,
  186.       for test purposes only.
  187.     
  188.     - fixed PICMTHD_INSERT to support insertion of pictures
  189.       which are both mapped to the same drawhandle. untested yet.
  190.  
  191. v8.1
  192.     - to end up problems with cybergraphics.library/ScalePixelArray(),
  193.       I've included an ENV variable named guigfx/USESCALEPIXELARRAY
  194.       so that the user may decide. Default is "0", and
  195.       guigfx.library/DrawPicture() uses its internal scaling
  196.       routines. DirectDrawTrueColor() always uses ScalePixelArray()
  197.       with cgfx v41 present.
  198.  
  199. v8.0
  200.     - added CreateDirectDrawHandle(), DeleteDirectDrawHandle()
  201.       and DirectDrawTrueColor() for optimized drawing of
  202.       RGB data.
  203.  
  204.     - wowsers, cybergraphics.library/scalepixelarray() seems
  205.       to get faster and buggier with every new cybergraphics
  206.       update. i wonder if the authors still know what's going
  207.       on inside? anyway, i can't really decide whether to use
  208.       it or not. currently, DirectDrawTrueColor() uses it for
  209.       higher performance, and DrawPicture() doesn't for
  210.       accurate scaling without flicker.
  211.  
  212. v7.2
  213.     - applied Tower JPEG Class license agreements to the
  214.       legal informations.
  215.  
  216.     - If you want to use the Tower JPEG codec, your program
  217.       has to be in accordance to the respective license
  218.       agreements. Specify the tag GGFX_License for
  219.       IsPicture() and LoadPicture() to use the JPEG codec.
  220.       Otherwise, datatypes are used.
  221.  
  222. v7.1
  223.     - added picture mehtods PICMTHD_FLIPX and PICMTHD_FLIPY.
  224.  
  225. v7.0
  226.     - added picture method PICMTHD_INSERT.
  227.  
  228. v6.2
  229.     - improved drawing speed with OS3.0
  230.  
  231. v6
  232.     - ClonePicture() now handles scaling.
  233.     - minor changes and speed improvements.
  234.     - JPEG is the first file format to be supported
  235.       directly. LoadPicture() uses the tower.library
  236.       JPEG codec if available. directly supported
  237.       formats require less memory while loading.
  238.  
  239. v5
  240.     - added method PICMTHD_TINTALPHA
  241.  
  242. v4.4
  243.     - since v4.3, ObtainDrawHandle() crashed on screens with
  244.       no sharable pens. fixed.
  245.     - if render.library cannot be found in LIBS:,
  246.       guigfx.library now tries to open it at libs/.
  247.     - IsPicture() no longer crashes without datatypes.library.
  248.  
  249. v4.3
  250.     - improved logic in ObtainDrawHandle() for
  251.       truecolor-rastports and pensharemap=NULL
  252.     - updated autodocs.
  253.     - Calls to ScalePixelArray()/cybergraphics v41 have been
  254.       removed. Instead, a 24bit render.library scaling-engine
  255.       is used. ScalePixelArray() is too slow (especially with
  256.       large images), does not scale correctly, causes
  257.       flickering, and cannot be interrupted.
  258.     - fixed PICMTHD_SET with pictures mapped to a drawhandle.
  259.     - added tags GGFX_SourceWidth, GGFX_SourceHeight, 
  260.       GGFX_SourceX und GGFX_SourceY to ClonePicture(). It's
  261.       now possible to clone a picture in part.
  262.     - fixed a minor bug in MakePicture().
  263.     - MakePicture() now accpets NULL as the palette argument
  264.       for PIXFMT_CHUNKY_CLUT, in which case a grey palette
  265.       with 256 entries will be generated.
  266.  
  267. v4.2
  268.     - DrawPicture() did not set a correct return value under
  269.       rare circumstances. fixed.
  270.     - pictures now cache their last scaling-engine.
  271.     - DrawPicture() is now guaranteed to execute the line hook
  272.       at least once per call.
  273.  
  274. v4.1
  275.     - the functions LockPicture() and UnlockPicture() are now
  276.       considered 'obsolete'. Calling LockPicture() will always
  277.       return FALSE, and UnlockPicture() will do nothing.
  278.       
  279.       Please remove these functions from your code and replace
  280.       them with a call to DoPictureMethod() with
  281.       PICMTHD_MAPDRAWHANDLE if you need optimized rendering.
  282.  
  283.       The idea behind LockPicture() wasn't too bad, but currently
  284.       it is not possible to implement it properly. LockPicture()
  285.       and UnlockPicture() will no longer be documented, but the
  286.       LVOs remain valid and might be reactivated some day. Calling
  287.       these functions in already existing code is harmless.
  288.  
  289. v4.00
  290.     - implemented IsPicture()
  291.  
  292. v3.11
  293.     - fixed several memory management problems with LoadPicture().
  294.  
  295. v3.10
  296.     - fixed a heavy bug leading to memory corruptions, especially
  297.       when drawing to native Amiga screen modes.
  298.     
  299. v3.03
  300.     - MakePictureA() now accepts NULL as a data pointer. This
  301.       will create a 'blank' picture with the specified
  302.       attributes.
  303.     - ObtainDrawHandleA() now accepts NULL for the pensharemap
  304.       argument. In this case ObtainDrawHandle creates a drawhandle
  305.       with a static 9bit colorspace palette.
  306.     - MakePictureA() now accepts a NULL palette for PIXFMT_CHUNKY_CLUT.
  307.       This will create a default-palette (256 colors from black to white)
  308.     - drawing to bitplanes without scaling is now performed
  309.       via Chunky2BitMap/BltBitMapRastPort.
  310.     - implemented PICMTHD_SET.
  311.     - fixed lots of bugs in internal picture conversion routines.
  312.  
  313. v3.02
  314.     - guigfx.library no longer depends on datatypes.library v40.
  315.       the minimum version number is reset to v39.
  316.     - implemented PICMTHD_TEXTURE.
  317.     - bumped revision number for render.library to v25.
  318.  
  319. v3.01
  320.     - fixed a minor bug in LockPictureA().
  321.     - added documentation for LockPictureA() and UnLockPicture().
  322.     - added a workaround for INVALID_ID originating from
  323.       PDTA_ModeID. INVALID_ID returned by a datatype appears
  324.       neither logical nor legal to me. anyway, guigfx.library
  325.       no longer crashes with HAM8 pictures loaded by the ILBM v43
  326.       datatype in an ECS/OCS environment. however, the images still
  327.       appear scrambled, since guigfx.library cannot determine whether
  328.       to treat an image as HAM8 or not.
  329.  
  330. v3.00
  331.     - Some more tags implemented.
  332.     - the autodocs have been reworked.
  333.     - the internal memhandler has been reset to RMHTYPE_POOL.
  334.     - implemented LockPicture() and UnlockPicture().
  335.     - color allocation strategy improved.
  336.     - datatypes.Library is no longer required for guigfx.library
  337.       to be opened successfully.
  338.  
  339. v2.01
  340.     - fixed GGFX_SourceX / GGFX_SourceY when drawing truecolor data to
  341.       truecolor rastports without scaling. Thanks to M. Hillenbrand
  342.       who reported this obstinate bug.
  343.  
  344. v2.00
  345.     - fixed some internal histogram-related quirks and problems.
  346.       the resolution of a picture's histogram is now by default the
  347.       pensharemap's resolution it is being added to. if no
  348.       pensharemap is involved, then the histogram's resolution
  349.       will be set to the default resolution (currently HSTYPE_12BIT_TURBO).
  350.       You may as well set GGFX_HSType for LoadPicture(), MakePicture(),
  351.       and ReadPicture(), but this is not required under normal
  352.       circumstances. Better set the desired resolution when calling
  353.       CreatePenShareMap().
  354.     - guigfx.library no longer crashes with old versions of
  355.       render.library. Now it closes down gently (It seems as I was
  356.       completely brain-dead when I wrote the setup routine)
  357.     - autodocs now reflect all new tags and methods.
  358.  
  359. v1.99
  360.     - since the autodither value cannot be computed when rendering
  361.       to HAM screen modes, HAM dithering is always enabled with
  362.       autodither != 0 and disabled with autodither==0.
  363.     - fixed documentation of AddPaletteA() and fixed a bug in
  364.       AddPalette() / PALFMT_RGB32. Thanks to Frank Pagels who
  365.       reported these problems.
  366.     - added picture method PICMTHD_TINT.
  367.     - guigfx.library no longer tries to open Cybergraphics.library
  368.       v41. The code now correctly differentiates for ScalePixelArray()
  369.       and custom scaling routines. Thanks to M. Hillenbrand and
  370.       S. Sommerfeld who reported this bug.
  371.  
  372. v1.98
  373.     - drawing/scaling truecolor to truecolor drawing is now
  374.       done with ScalePixelArray/cybergraphics.library which
  375.       isn't as slow as I expected. It can stand the test
  376.       with a render.library scaling-engine plus line-by-line
  377.       drawing, and it requires no additional memory.
  378.     - The code now differenciates graphics v40 for drawing to
  379.       graphic card rastports via WriteChunkyPixels().
  380.  
  381. v1.97
  382.     - guigfx.library now tries to convert chunky pictures to
  383.       truecolor before drawing to HAM modes. if conversion
  384.       fails (i.e. with the picture in a static buffer), the
  385.       image will be drawn with the 16/64 HAM base colors.
  386.  
  387. v1.96
  388.     - fixed a minor bug that occured when drawing odd-width
  389.       pictures in directdraw mode.
  390.     - guigfx.library now renders to HAM modes. Currently the
  391.       full HAM spectrum is only used with truecolor pictures.
  392.       When ObtainDrawHandle() is supplied with GGFX_ModeID, 
  393.       then HAM is automatically recognized and used.
  394.  
  395. v1.95
  396.     - removed a workaround for an incompatibility problem
  397.       between the cybergraphx and picasso96 picture.datatypes.
  398.       loading is faster now and requires less memory. this
  399.       update requires the picasso96 picture.class datatype
  400.       v43.26.
  401.     - revised autodocs and completed the documentation for
  402.       the picture method PICMTHD_CREATEALPHAMASK.
  403.  
  404. v1.94
  405.     - fixed a overlap-memcopy bug in PICMTHD_CROP. You need to
  406.       upgrade to render.library v22.1.
  407.  
  408. v1.93
  409.     - improved alpha-channel handling. PICMTHD_MIXALPHA
  410.       now handles alpha-channels in both the source and
  411.       destination picture (if present).
  412.     - implemented PICMTHD_CREATEALPHAMASK.
  413.     - added E includes
  414.  
  415. v1.92
  416.     - fixed bug in DoPictureMethod: certain internal format
  417.       conversions lead to crashes since v1.7.
  418.     - implemented PICMTHD_RENDER with destination format
  419.       PIXFMT_RGB_24.
  420.     - completed alpha-channel administration. an alpha-channel
  421.       is no longer discarded when the internal pixel format
  422.       changes.
  423.     - implemented GGFX_AlphaPresent for MakePicture()
  424.  
  425. v1.9
  426.     - rewrote all drawing routines. the code is more
  427.       differentiated for optimized drawing.
  428.     - autodither fixed. finally this feature works as
  429.       it was originally intended to.
  430.     - Fixed v1.8 bug when drawing to truecolor screens.
  431.     - implemented GGFX_DitherMode for DrawPicture() and
  432.       CreatePictureBitMap(). They may be used to optionally
  433.       override the drawhandle's dithermode.
  434.     - Note: guigfx.library v1.9 requires render.library v21.
  435.     - implemented GGFX_AspectX and GGFX_AspectY to
  436.       MakePicture().
  437.  
  438. v1.8
  439.     - ObtainDrawHandle() no longer allocates pens for
  440.       truecolor rastports. Thanks to Stefan Sommerfeld
  441.       who reported this bug.
  442.     - GGFX_SourceWidth and GGFX_SourceHeight were not
  443.       correctly implemented for CreatePictureBitMap()
  444.     - fixed minor memory transfer problems: TurboCopyMem()
  445.       was sometimes applied to odd-sized memory areas
  446.     - implemented GGFX_BufferSize for MakePicture()
  447.  
  448. v1.7
  449.     - a picture has no longer to be maintained for an open
  450.       colorhandle. with other words: you may DeletePicture()
  451.       a picture after it has been added to a pensharemap via
  452.       AddPicture().
  453.     - implemented GGFX_MaxAllocPens for ObtainDrawHandle().
  454.       This limits the number of allocated pens to a specific
  455.       number. Better you use this feature only if you've got
  456.       a very good reason for it.
  457.     - math problems fixed. GGFX_Weight should work now. a better
  458.       color allocation strategy has been implemented.
  459.       Currently use GGFX_Weight in a range from 1-10. Maybe
  460.       I will implement a more sophisticated measurement later.
  461.     - internal color allocation order is now PALMODE_SATURATION
  462.       instead of PALMODE_SIGNIFICANCE. this improves color
  463.       allocation speed drastically.
  464.     - drawhandles no longer maintain a global mapping-engine.
  465.       this saves some memory and is remarkably faster in many
  466.       situations, since the mapping-engine could not be linked
  467.       to the drawhandle's histogram.
  468.  
  469. v1.6
  470.     - implemented GGFX_ErrorCode for LoadPicture(). You specify
  471.       a pointer to LONG, and a standard DOS error code will be
  472.       returned (NULL when everything was OK).
  473.  
  474. v1.5
  475.     - LoadPicture() did not always handle v43 bitmaps correctly.
  476.       Fixed. Thanks to Markus Hillenbrand who reported this bug.
  477.     - guigfx.library's global memhandler is reset to RMHTYPE_PUBLIC
  478.       for debugging, since public memory violations can be
  479.       tracked down more easily.
  480.     - fixed PICMTHD_MIXALPHA with the source picture in
  481.       PIXFMT_CHUNKY_CLUT
  482.     - added PICATTR_AspectX and PICATTR_AspectY to GetPictureAttrs()
  483.  
  484. v1.4    - fixed minor autodither bug.
  485.     - GGFX_CallBackHook implemented for CreatePictureBitMap.
  486.     - the autodither calculation is now invoked only for rastports
  487.       with a depth <= 8
  488.  
  489. v1.3
  490.     - added GGFX_DitherMode to CreatePictureBitMap()
  491.     - added GGFX_DestWidth, DestHeight, DestX and DestY to
  492.       method PICMTHD_MIXALPHA and PICMTHD_SETALPHA.
  493.       added GGFX_DestWidth, DestHeight, DestX, DestY, SourceX,
  494.       SourceY, SourceWidth, SourceHeight to method PICMTHD_MIX.
  495.       after all, DoPictureMethod() can apply clip regions of alpha
  496.       channel data to regions inside the picture, with automatic
  497.       scaling when necessary.
  498.     - cleaned up all drawing routines.
  499.     - GGFX_CallBackHook implemented for DrawPicture.
  500.  
  501. v1.2
  502.     - fixed a bug in ClonePicture(). When a cloned picture was
  503.       deleted after the original, a memhandler-failure occured
  504.       (leading to an ILLEGAL exception in render.library)
  505.     - fixed a bug in LoadPicture() - eliminated calls to IoErr().
  506.       dos.library is not part of guigfx.library. this fixes
  507.       crashes with unknown datatype objects or load errors.
  508.     - guigfx.library now uses a global memhandler with RMHTYPE_POOL
  509.       and MEMF_REVERSE.
  510.     - implemented GGFX_SourceWidth, GGFX_SourceHeight, GGFX_SourceX
  511.       and GGFX_SourceY for DrawPicture(). Now you can easily specify
  512.       offsets.
  513.  
  514. v1.1
  515.     - fixed a heavy bug when drawing to native Amiga screen modes.
  516.  
  517.  
  518. v1.0
  519.     - first internal beta release.
  520.  
  521.